package model

import (
	"gorm.io/gorm"
	"time"
)

type Products struct {
	Id        uint           `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	Title     string         `gorm:"column:title;type:varchar(30);comment:商品标题;not null;" json:"title"`                                        // 商品标题
	Cover     string         `gorm:"column:cover;type:varchar(255);comment:商品封面;not null;" json:"cover"`                                       // 商品封面
	Price     uint           `gorm:"column:price;type:bigint UNSIGNED;comment:商品价格;not null;default:0;" json:"price"`                          // 商品价格
	Stock     uint           `gorm:"column:stock;type:bigint UNSIGNED;comment:商品库存;not null;default:0;" json:"stock"`                          // 商品库存
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdateAt  time.Time      `gorm:"column:update_at;type:datetime(3);comment:更新时间;not null;default:CURRENT_TIMESTAMP(3);" json:"update_at"`   // 更新时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

func (p *Products) TableName() string {
	return "products"
}

type GroupBuy struct {
	Id           uint           `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	UserId       uint           `gorm:"column:user_id;type:bigint UNSIGNED;comment:用户id;not null;default:0;" json:"user_id"`                      // 用户id
	Username     string         `gorm:"column:username;type:varchar(20);comment:收货人姓名;not null;" json:"username"`                                 // 收货人姓名
	Phone        string         `gorm:"column:phone;type:char(11);comment:收货人手机号码;not null;" json:"phone"`                                        // 收货人手机号码
	AddressId    uint           `gorm:"column:address_id;type:bigint UNSIGNED;comment:地址;not null;default:0;" json:"address_id"`                  // 地址
	ProductId    uint           `gorm:"column:product_id;type:bigint UNSIGNED;comment:商品id;not null;default:0;" json:"product_id"`                // 商品id
	ProductName  string         `gorm:"column:product_name;type:varchar(50);comment:商品标题;not null;" json:"product_name"`                          // 商品标题
	ProductCover string         `gorm:"column:product_cover;type:varchar(255);comment:商品封面;not null;" json:"product_cover"`                       // 商品封面
	ProductPrice uint           `gorm:"column:product_price;type:bigint UNSIGNED;comment:商品价格;not null;default:0;" json:"product_price"`          // 商品价格
	Num          uint           `gorm:"column:num;type:bigint UNSIGNED;comment:数量;not null;default:0;" json:"num"`                                // 数量
	Total        uint           `gorm:"column:total;type:bigint UNSIGNED;comment:总价格;not null;default:0;" json:"total"`                           // 总价格
	CreatedAt    time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdateAt     time.Time      `gorm:"column:update_at;type:datetime(3);comment:更新时间;not null;default:CURRENT_TIMESTAMP(3);" json:"update_at"`   // 更新时间
	DeletedAt    gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

func (g *GroupBuy) TableName() string {
	return "group_buy"
}
